package lib.popup

import android.graphics.PointF
import android.graphics.Rect
import android.view.View
import com.lxj.xpopup.interfaces.XPopupCallback
import lib.popup.enum.PopupPosition
import lib.popup.enum.PopupType
import java.util.ArrayList

/**
 *  author: luoXiong
 *  e-mail: 382060748@qq.com
 *  date: 2021/9/2 17:34
 *  version: 1.0
 *  desc: Popup的属性封装
 */
class PopupCommonInfo {
    var popupType: PopupType? = null //窗体的类型
    var isDismissOnBackPressed = true //按返回键是否消失
    var isDismissOnTouchOutside = true //点击外部消失
    var autoDismiss = true //操作完毕后是否自动关闭
    var hasShadowBg = true // 是否有半透明的背景
    var hasBlurBg = false // 是否有高斯模糊背景
    var atView: View? = null // 依附于那个View显示
    var watchView: View? = null // 依附于那个View显示

    // 动画执行器，如果不指定，则会根据窗体类型popupType字段生成默认合适的动画执行器
//    var popupAnimation: PopupAnimation? = null
//    var customAnimator: PopupAnimator? = null
    var touchPoint: PointF? = null // 触摸的点
    var maxWidth = 0// 最大宽度

    var maxHeight = 0 // 最大高度

    var popupWidth = 0
    var popupHeight = 0 // 指定弹窗的宽高，受max的宽高限制

    var borderRadius = 15f // 圆角
    var autoOpenSoftInput = false //是否自动打开输入法
    var xPopupCallback: XPopupCallback? = null
    var isMoveUpToKeyboard = true //是否移动到软键盘上面，默认弹窗会移到软键盘上面
    var popupPosition: PopupPosition? = null //弹窗出现在目标的什么位置
    var hasStatusBarShadow = false //是否显示状态栏阴影
    var hasStatusBar = true //是否显示状态栏
    var hasNavigationBar = true //是否显示导航栏
    var navigationBarColor = 0 //是否显示导航栏
    var isLightNavigationBar = false //是否是亮色导航栏
    var isLightStatusBar = false //是否是亮色状态栏
    var offsetX = 0
    var offsetY //x，y方向的偏移量
            = 0
    var enableDrag = true //是否启用拖拽
    var isCenterHorizontal = false //是否水平居中
    var isRequestFocus = true //弹窗是否强制抢占焦点
    var autoFocusEditText = true //是否让输入框自动获取焦点
    var isClickThrough = false //是否点击透传，默认弹背景点击是拦截的
    var isDarkTheme = false //是否是暗色调主题
    var enableShowWhenAppBackground = false //是否允许应用在后台的时候也能弹出弹窗
    var isThreeDrag = false //是否开启三阶拖拽
    var isDestroyOnDismiss = false //是否关闭后进行资源释放
    var positionByWindowCenter = false //是否已屏幕中心进行定位，默认根据Material范式进行定位
    var isViewMode = false //是否是View实现，默认是Dialog实现
    var keepScreenOn = false //是否保持屏幕常亮
    var shadowBgColor = 0 //阴影背景的颜色
    var animationDuration = -1 //动画的时长
    var statusBarBgColor = 0 //状态栏阴影颜色，对Drawer弹窗和全屏弹窗有效
    var notDismissWhenTouchInArea //当触摸在这个区域时，不消失
            : ArrayList<Rect>? = null


}